Long ca ca
 Một xâu có đội dài lớn hơn 1 chỉ gồm các chữ cái La tinh in thường được gọi là số đối xứng nếu ta đọc xâu đó từ trái sang phải và từ phải sang trái là như nhau. Một xâu được gọi là siêu đối xứng, nếu nó là xâu đối xứng hoặc được tạo thành bằng cách ghép  liên tiếp từ nhiều xâu đối xứng.Yêu cầu: Cho một xâu S, hãy đếm số xâu con siêu đối xứng của S ( Xâu con của một xâu S là một đoạn liên tiếp các kí tự của S)Dữ liệu vào: Nhập xâu S từ bàn phímDữ liệu ra: Xuất ra màn hình số xâu con tìm đượcNhập...
Đọc tiếp

Những câu hỏi liên quan
Long ca ca
Xem chi tiết
meme
7 tháng 9 2023 lúc 13:41

Dưới đây là một ví dụ về cách giải quyết bài toán này bằng ngôn ngữ Pascal:

 function isPalindrome(s: string): boolean; var i, n: integer; begin n := Length(s); for i := 1 to n div 2 do begin if s[i] <> s[n - i + 1] then begin Result := false; Exit; end; end; Result := true; end; function countSuperPalindromes(s: string): integer; var i, j, n: integer; subStr: string; begin n := Length(s); Result := 0; // Đếm số xâu con đối xứng for i := 1 to n do begin subStr := '' for j := i to n do begin subStr := subStr + s[j]; if isPalindrome(subStr) then Inc(Result); end; end; // Đếm số xâu con siêu đối xứng for i := 1 to n - 1 do begin subStr := '' for j := i to n do begin subStr := subStr + s[j]; if isPalindrome(subStr) then Inc(Result); end; end; end; var s: string; begin s := 'ababcb' writeln(countSuperPalindromes(s)); end.

Kết quả của ví dụ trên sẽ là 3, tương ứng với 3 xâu con siêu đối xứng của xâu "ababcb" là "aba", "bcb", và "ababcb".

Lưu ý rằng đây chỉ là một cách giải quyết bài toán và có thể tồn tại các cách giải khác.

Bình luận (1)
Khánh Mỹ
Xem chi tiết
Buddy
3 tháng 3 2021 lúc 14:54

program bai_10_chuong_4;

uses crt;

var

s: string[100];

i, dem: integer;

Begin

clrscr;

write('Nhap xau vao:'); readln(s); dem:= 0;

for i:= 1 to length(s) do

if ('0'<=s[i]) and(s[i]<=’9') then dem:=dem+l;

Writeln('Trong xau s co '»dem,' chu so thap phan');

readln;

End.

 

Bình luận (1)
Nguyễn Lê Phước Thịnh
3 tháng 3 2021 lúc 19:43

uses crt;

var st:string[100];

i,d,kt:integer;

begin

clrscr;

write('Nhap xau:'); readln(st);

kt:=0;

for i:=1 to length(st) do

if st[i]<>st[length(st)-i+1] then kt:=1;

if kt=0 then write('Xau doi xung')

else writeln('Xau khong doi xung');

readln;

end.

Bình luận (0)
phuoc
20 tháng 8 2021 lúc 14:59

code đây bạn c++ nha:

#include<bits/stdc++.h>
using namespace std;
char doixung(char s1[100])
{
long long i;
for(i=0;i<strlen(s1)/2;i++)
{
    if(s1[i] != s1[strlen(s1)-1-i])
         return 0;
}
return 1;
}
int main()
{
char s1[100];
cin>>s1;
if(doixung(s1)==0)
{
   cout<<"k la cxau doi xung";
}
if(doixung(s1)==1)
{
   cout<<"la xau doi xung";
}
return 0 ;
}

Bình luận (0)
nobody
Xem chi tiết
Nguyễn Lê Phước Thịnh
31 tháng 10 2021 lúc 0:52

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string st;
    int dai,i,kt;
    cout<<"Nhap chuoi:"; getline(cin,st);
    dai=st.length();
    kt=0;
    for (int i=0;i<dai;i++)
        if (st[i]!=st[dai-i-1]) kt=1;
    if (kt==0) cout<<"YES";
    else cout<<"NO";
    return 0;
}

 

Bình luận (1)
Hello1234
Xem chi tiết

#include<bits/stdc++.h>
using namespace std;
int main(){
long long i,dem[1000],d;
string s;
cin >>s;
for(i=0;i<s.size();i++)
    dem[s[i]]++;
d=0;
for(i=97;i<=122;i++)
   if(dem[i]%2==1)
      d++;
if(d>0)
    cout<<d-1;
else
    cout<<0;
return 0;
}

 

Bình luận (0)
Hello1234
Xem chi tiết
Nguyễn Thị Thùy Trang
14 tháng 2 2022 lúc 13:37

Đếm số lần xuất hiện của các kí tự 'a'..'z' trong xâu S. Dễ thấy với các kí tự có số lần xuất hiện là chẵn, ta có thể xếp một nửa kí tự đó sang 2 bên thỏa mãn tính chất đối xứng. Đối với kí tự có số lần xuất hiện là lẻ, ta làm tương tự và đưa kí tự còn lại vào trung tâm. Như vậy, để xâu sau khi xóa đối xứng thì chỉ có duy nhất một kí tự có số lần xuất hiện lẻ nên ta sẽ  xóa các kí tự lẻ đó, chỉ để lại 1 hoặc 0 cái cuối cùng. 
code tham khảo:
int main()
{
    string s;
    cin >> s;

    vector<int> fre(256, 0);
    for (char c : s) fre[c]++;

    int res = 0;
    for (int x : fre) res += (x % 2 == 1);
    cout << res - (res > 0);
    return 0;
}

Bình luận (0)
Nguyễn Diệu Thảo
Xem chi tiết
Ngô Chí Thành
Xem chi tiết
Minh Lệ
1 tháng 6 2021 lúc 15:30

Program HOC24;

var m,i,n: longint;

d1,d2,d3: integer;

function dx(x: longint): boolean;

var j: longint;

s,s1: string;

begin

s1:='' dx:=false;

str(x,s);

for j:=length(s) downto 1 do 

s1:=s1+s[j];

if s=s1 then dx:=true else exit;

end;

function cp(k: longint): boolean;

begin

cp:=false;

if k=sqr(trunc(sqrt(k))) then cp:=true else exit;

end;

begin

write('Nhap M; N: '); readln(m,n);

d1:=0; d2:=0; d3:=0;

if (m<n) and (m>=10) and (n<=100000) then

begin

write('Cac so doi xung la: ');

for i:=m to n do

if dx(i) then

begin

d1:=d1+1;

write(i,' ');

end;

writeln;

writeln('Co ',d1,' so doi xung');

write('Cac so chinh phuong la: ');

for i:=m to n do

if cp(i) then 

begin

d2:=d2+1;

write(i,' ');

end;

writeln;

writeln('Co ',d2,' so chinh phuong');

write('Cac so doi xung chinh phuong la: ');

for i:=m to n do

if dx(i) and cp(i) then 

begin

d3:=d3+1;

write(i,' ');

end;

writeln;

write('Co ',d3,' so doi xung chinh phuong');

end;

readln

end.

Bình luận (0)
Bùi Thị Sáu
Xem chi tiết
Lâm Văn Nhựt
Xem chi tiết